package net.neptech.service;

import net.neptech.bo.RoleBo;
import net.neptech.page.PageQuery;
import net.neptech.page.TableDataInfo;
import net.neptech.vo.RoleVo;

import java.util.List;
import java.util.Set;

public interface RoleService {
    /**
     * 查询当前用户role权限
     * @param userId 角色id
     * @return 权限集合
     */
    Set<String> selectRolePermissionByUserId(Long userId);

    /**
     * 分页查询角色列表
     * @param pageQuery 分页参数
     * @return 分页数据
     */
    TableDataInfo<RoleVo> selectPageRoleList(PageQuery pageQuery);

    /**
     * 更新角色
     * @param roleBo
     */
    void updateRole(RoleBo roleBo);

    void changeStatus(RoleVo roleVo);

    void insertRole(RoleBo roleVo);

    /**
     * 根据角色id[]删除
     * @param roleIds
     */
    void deleteRoleByIds(Long[] roleIds);

    /**
     * 根据角色id查询
     * @param roleId 角色id
     * @return
     */
    RoleVo selectRoleById(Long roleId);

    List<RoleVo> selectRoleAll();

    List<Long> selectRoleByStaffId(Long staffId);
}
